home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1993 / Internet Info CD-ROM (Walnut Creek) (1993).iso / inet / internet-drafts / draft-ietf-dhc-protocol-06.txt < prev    next >
Text File  |  1993-03-03  |  71KB  |  1,963 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Internet Engineering Task Force                                     R. Droms
  8. INTERNET-DRAFT                                           Bucknell University
  9.                                                               December, 1992
  10.  
  11.  
  12.                     Dynamic Host Configuration Protocol
  13.  
  14.  
  15.  
  16.  
  17. 1 Abstract
  18.  
  19.  
  20. The Dynamic Host Configuration Protocol (DHCP) provides a framework for
  21. passing configuration information to hosts on a TCP/IP network.
  22.  
  23.  
  24. 2 Status of this memo
  25.  
  26.  
  27. This draft document is a product of the IETF Dynamic Host Configuration
  28. Working Group; it will be submitted to the RFC editor as a standards
  29. document.  Distribution of this memo is unlimited.  It is available in both
  30. ASCII and PostScript formats.  The figures are described in PostScript and
  31. are not included with the ASCII version of the document.  Copies of the
  32. figures are available from the author.  Please respond with comments to the
  33. host-conf@sol.cs.bucknell.edu mailing list.  This document will expire on
  34. June 1, 1993.
  35.  
  36. This document is an Internet Draft.  Internet Drafts are working documents
  37. of the Internet Engineering Task Force (IETF), its Areas, and its Working
  38. Groups.  Note that other groups may also distribute working documents as
  39. Internet Drafts.
  40.  
  41. Internet Drafts are draft documents valid for a maximum of six months.
  42. Internet Drafts may be updated, replaced, or obsoleted by other documents at
  43. any time.  It is not appropriate to use Internet Drafts as reference
  44. material or to cite them other than as a ``working draft'' or ``work in
  45. progress.''  Please check the 1id-abstracts.txt listing contained in the
  46. internet-drafts Shadow Directories on nic.ddn.mil, nnsc.nsf.net,
  47. nic.nordu.net, ftp.nisc.sri.com, or munnari.oz.au to learn the current
  48. status of any Internet Draft.
  49.  
  50.  
  51. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  52.  
  53. Contents
  54.  
  55.  
  56. 1 Abstract                                                                 1
  57.  
  58.  
  59. 2 Status of this memo                                                      1
  60.  
  61. 3 Introduction                                                             4
  62.  
  63.  3.1Related Work  : : :: : : : :: : : : : :: : : : :: : : : :: : : : :: :  5
  64.  3.2Problem definition and issues : : : : :: : : : :: : : : :: : : : :: :  5
  65.  3.3Requirements  : : :: : : : :: : : : : :: : : : :: : : : :: : : : :: :  6
  66.  
  67.  
  68. 4 Protocol Summary                                                         7
  69.  4.1Components of the Protocol  : : : : : :: : : : :: : : : :: : : : :: :  9
  70.  4.2Configuration parameters repository : :: : : : :: : : : :: : : : :: : 10
  71.  4.3Dynamic allocation of network addresses  : : : :: : : : :: : : : :: : 10
  72.  
  73.  
  74. 5 The Client--Server Protocol                                             11
  75.  5.1Client--server interaction -- allocating a network address : : : :: : 11
  76.  5.2Client--server interaction  -- reusing a previously allocated network
  77.       address: : :: : : : :: : : : : :: : : : :: : : : :: : : : :: : : :  15
  78.  
  79.  5.3Interpretation and representation of time values  : : : :: : : : :: : 17
  80.  5.4Host parameters in DHCP  : :: : : : : :: : : : :: : : : :: : : : :: : 17
  81.  5.5Use of DHCP in clients with multiple interfaces : : : : :: : : : :: : 18
  82.  5.6When clients should use DHCP  : : : : :: : : : :: : : : :: : : : :: : 19
  83.  
  84.  
  85. 6 Specification of the DHCP client--server protocol                       19
  86.  6.1Constructing and sending DHCP messages : : : : :: : : : :: : : : :: : 19
  87.  6.2DHCP server administrative controls : :: : : : :: : : : :: : : : :: : 20
  88.  
  89.  6.3DHCP server behavior : : : :: : : : : :: : : : :: : : : :: : : : :: : 20
  90.    6.3.1DHCPDISCOVER message  : :: : : : : :: : : : :: : : : :: : : : :: : 20
  91.    6.3.2DHCPREQUEST message : : :: : : : :: : : : :: : : : :: : : : : :: : 23
  92.    6.3.3DHCPDECLINE message : : :: : : : :: : : : :: : : : :: : : : : :: : 24
  93.  
  94.    6.3.4DHCPRELEASE message : : :: : : : :: : : : :: : : : :: : : : : :: : 24
  95.  6.4DHCP client behavior : : : :: : : : : :: : : : :: : : : :: : : : :: : 24
  96.    6.4.1Initialization and allocation of network address : : :: : : : :: : 24
  97.    6.4.2Initialization with known network address   :: : : : :: : : : :: : 27
  98.  
  99.    6.4.3Initialization with a known DHCP server address  : : :: : : : :: : 28
  100.    6.4.4Reacquisition and expiration : : :: : : : :: : : : :: : : : :: : : 28
  101.    6.4.5DHCPRELEASE  : :: : : : :: : : : : :: : : : :: : : : :: : : : :: : 29
  102.  
  103.  
  104. 7 Security Considerations                                                 29
  105.  
  106. R. Droms                                                            [Page 2]
  107.  
  108.  
  109. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  110.  
  111. 8 Acknowledgments                                                         29
  112.  
  113.  
  114. 9 Author's Address                                                        30
  115.  
  116. 10References                                                              30
  117.  
  118.  
  119. 11Expiration date                                                         30
  120.  
  121. A  Host Configuration Parameters                                          33
  122.  
  123.  
  124. List of Figures
  125.  
  126.  
  127.  1  Format of a DHCP message : :: : : : :: : : : :: : : : :: : : : : :: : 8
  128.  2   Timeline  diagram  of messages  exchanged  between  DHCP client  and
  129.       servers when allocating a new network address: : :: : : : :: : : :  13
  130.  3   Timeline  diagram  of messages  exchanged  between  DHCP client  and
  131.       servers when reusing a previously allocated network address :: : :  16
  132.  4  State--transition diagram for DHCP clients : : :: : : : :: : : : :: : 25
  133.  
  134.  
  135. List of Tables
  136.  
  137.  
  138.  1  Description of fields in a DHCP message  : : : :: : : : :: : : : :: : 12
  139.  2  DHCP messages : : :: : : : :: : : : : :: : : : :: : : : :: : : : :: : 15
  140.  3  Fields and options used by DHCP servers  : : : :: : : : :: : : : :: : 21
  141.  4  Fields and options used by DHCP clients  : : : :: : : : :: : : : :: : 26
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164. R. Droms                                                            [Page 3]
  165.  
  166.  
  167. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  168.  
  169. 3 Introduction
  170.  
  171.  
  172. The Dynamic Host Configuration Protocol (DHCP) provides configuration
  173. parameters to Internet hosts.  DHCP consists of three components:  a
  174. protocol for delivering host--specific configuration parameters from a DHCP
  175. server to a host; a mechanism for allocation of network addresses to hosts;
  176. and a protocol through which a collection of DHCP servers can cooperatively
  177. allocate network addresses from a shared pool of network addresses.
  178.  
  179. DHCP is built on a client--server model, where designated DHCP server hosts
  180. allocate network addresses and deliver configuration parameters to
  181. dynamically configured hosts.  Throughout the remainder of this document,
  182. the term ``server'' refers to a host providing initialization parameters
  183. through DHCP, and the term ``client'' refers to a host requesting
  184. initialization parameters from a DHCP server.
  185.  
  186. A host should not act as a DHCP server unless explicitly configured to do so
  187. by a system administrator.  The diversity of hardware and protocol
  188. implementations in the Internet would preclude reliable operation if random
  189. hosts were allowed to respond to DHCP requests.  For example, IP requires
  190. the setting of many parameters within the protocol implementation software.
  191. Because IP can be used on many dissimilar kinds of network hardware, values
  192. for those parameters cannot be guessed or assumed to have correct defaults.
  193. Also, distributed address allocation schemes depend on a polling/defense
  194. mechanism for discovery of addresses that are already in use.  IP hosts may
  195. not always be able to defend their network addresses, so that such a
  196. distributed address allocation scheme cannot be guaranteed to avoid
  197. allocation of duplicate network addresses.
  198.  
  199. DHCP supports three mechanisms for IP address allocation.  In ``automatic
  200. allocation'', DHCP assigns a permanent IP address to a host.  In ``dynamic
  201. allocation'', DHCP assigns an IP address to a host for a limited period of
  202. time (or until the host explicitly relinquishes the address).  In ``manual
  203. allocation'', a host's IP address is assigned by the network administrator,
  204. and DHCP is used simply to convey the assigned address to the host.  A
  205. particular network will use one or more of these mechanisms, depending on
  206. the policies of the network administrator.
  207.  
  208. Dynamic allocation is the only one of the three mechanisms that allows
  209. automatic reuse of an address that is no longer needed by the host to which
  210. it was assigned.  Thus, dynamic allocation is particularly useful for
  211. assigning an address to a host that will be connected to the network only
  212. temporarily or for sharing a limited pool of IP addresses among a group of
  213. hosts that do not need permanent IP addresses.  Dynamic allocation may also
  214. be a good choice for assigning an IP address to a new host being permanently
  215. connected to a network where IP addresses are sufficiently scarce that it is
  216. important to retire them when old hosts are retired.  Manual allocation
  217. allows DHCP to be used to eliminate the error--prone process of manually
  218. configuring hosts with IP addresses in environments where (for whatever
  219. reasons) it is desirable to manage IP address assignment outside of the DHCP
  220.  
  221.  
  222. R. Droms                                                            [Page 4]
  223.  
  224.  
  225. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  226.  
  227. mechanisms.
  228.  
  229. The format of DHCP messages is based on the format of BOOTP [7] messages, to
  230. capture the BOOTP relay agent behavior described as part of the BOOTP
  231. specification [7, 21] and to allow interoperability of existing BOOTP
  232. clients with DHCP servers.  Using BOOTP relaying agents eliminates the
  233. necessity of having a DHCP server on each physical network segment.
  234.  
  235.  
  236. 3.1 Related Work
  237.  
  238.  
  239. There are several Internet protocols and related mechanisms that address
  240. some parts of the dynamic host configuration problem.  RARP [9] (through the
  241. extensions defined in the DRARP draft RFC [5]) explicitly addresses the
  242. problem of network address discovery, and includes an automatic IP address
  243. assignment mechanism.  TFTP [20] provides for transport of a boot image from
  244. a boot server.  ICMP [15] provides for informing hosts of additional routers
  245. via ``ICMP redirect'' messages.  ICMP also can provide subnet mask
  246. information through the ``ICMP mask request'' message and other information
  247. through the (obsolete) ``ICMP information request'' message.  Hosts can
  248. locate routers through the ICMP router discovery mechanism [8].
  249.  
  250. BOOTP is a transport mechanism for a collection of configuration
  251. information.  BOOTP is also extensible, and official extensions [16, 17]
  252. have been defined for several configuration parameters.  Morgan has proposed
  253. extensions to BOOTP for dynamic IP address assignment [14].  NIP, used by
  254. the Athena project at MIT, is a distributed mechanism for dynamic IP address
  255. assignment [19].  RLP [1] provides for location of higher level services.
  256. Sun Microsystems diskless workstations use a boot procedure that employs
  257. RARP, TFTP and an RPC mechanism called ``bootparams'' to deliver
  258. configuration information and operating system code to diskless hosts.  (Sun
  259. Microsystems, Sun Workstation and SunOS are trademarks of Sun Microsystems,
  260. Inc.)  Some Sun networks also use DRARP and an auto--installation mechanism
  261. to automate the configuration of new hosts in an existing network.
  262.  
  263. In other related work, the path MTU discovery algorithm can determine the
  264. MTU of an arbitrary internet path [13].  Comer and Droms have proposed the
  265. use of ARP as a transport protocol for resource location and selection [6].
  266. Finally, the Host Requirements RFCs [3, 4] mention specific requirements for
  267. host reconfiguration and suggest a scenario for initial configuration of
  268. diskless hosts.
  269.  
  270.  
  271. 3.2 Problem definition and issues
  272.  
  273.  
  274. DHCP is designed to supply hosts with the configuration parameters defined
  275. in the Host Requirements RFCs.  After obtaining parameters via DHCP, a host
  276. should be able to exchange packets with any other host in the Internet.  The
  277. parameters supplied by DHCP are listed in Appendix A.
  278.  
  279.  
  280. R. Droms                                                            [Page 5]
  281.  
  282.  
  283. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  284.  
  285. Not all of these parameters are required for a newly initialized host.  A
  286. client and server may negotiate for the transmission of only those
  287. parameters required by the client or specific to a particular subnet.
  288.  
  289. DHCP allows but does not require the configuration of host parameters not
  290. directly related to the IP protocol.  DHCP also does not address
  291. registration of newly configured hosts with DNS[11, 12].
  292.  
  293. DHCP is not intended for use in configuring routers.
  294.  
  295.  
  296. 3.3 Requirements
  297.  
  298.  
  299. The following list gives general requirements for DHCP.
  300.  
  301.  
  302.  
  303.   o DHCP should be a mechanism rather than a policy.  DHCP must allow local
  304.     system administrators control over configuration parameters where
  305.     desired; e.g., local system administrators should be able to enforce
  306.     local policies concerning allocation and access to local resources
  307.     where desired.
  308.  
  309.   o Hosts should require no manual configuration.  Each host should be able
  310.     to discover appropriate local configuration parameters without user
  311.     intervention and incorporate those parameters into its own
  312.     configuration.
  313.  
  314.   o Networks should require no hand configuration for individual hosts.
  315.     Under normal circumstances, the network manager should not have to
  316.     enter any per--host configuration parameters.
  317.  
  318.   o DHCP should not require a server on each subnet.  To allow for scale
  319.     and economy, DHCP must work across routers or through the intervention
  320.     of BOOTP/DHCP relay agents.
  321.  
  322.   o A DHCP host must be prepared to receive multiple responses to a request
  323.     for configuration parameters.  Some installations may include multiple,
  324.     overlapping DHCP servers to enhance reliability and increase
  325.     performance.
  326.  
  327.   o DHCP must coexist with statically configured, non--participating hosts
  328.     and with existing network protocol implementations.
  329.  
  330.   o DHCP must interoperate with the BOOTP relay agent behavior as described
  331.     by RFC 951 and by Wimer's Internet Draft.
  332.  
  333.   o DHCP must interoperate with existing BOOTP clients.
  334.  
  335.  
  336.  
  337.  
  338. R. Droms                                                            [Page 6]
  339.  
  340.  
  341. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  342.  
  343. The following list gives requirements specific to the transmission of the
  344. network layer parameters.  DHCP must:
  345.  
  346.  
  347.  
  348.   o Guarantee that any specific network address will not be in use by more
  349.     than one host at a time,
  350.  
  351.   o Retain host configuration across host reboot.  A host should, whenever
  352.     possible, be assigned the same configuration parameters (e.g., network
  353.     address) in response to each request,
  354.  
  355.   o Retain host configuration across server reboots, and, whenever
  356.     possible, a host should be assigned the same configuration parameters
  357.     despite restarts of the DHCP mechanism,
  358.  
  359.   o Allow automatic assignment of configuration parameters to new hosts to
  360.     avoid hand configuration for new hosts,
  361.  
  362.   o Support fixed or permanent allocation of configuration parameters to
  363.     specific hosts.
  364.  
  365.  
  366. 4 Protocol Summary
  367.  
  368.  
  369. From the client's point of view, DHCP is an extension of the BOOTP
  370. mechanism.  This behavior allows existing BOOTP clients to interoperate with
  371. DHCP servers without requiring any change to the clients' initialization
  372. software.  A separate document (currently an Internet Draft) details the
  373. interactions between BOOTP and DHCP clients and servers.  There are some
  374. new, optional transactions that optimize the interaction between DHCP
  375. clients and servers that are described in sections 5 and 6.
  376.  
  377. Figure 1 gives the format of a DHCP message and table 1 describes each of
  378. the fields in the DHCP message.  The numbers in parentheses indicate the
  379. size of each field in octets.  The names for the fields given in the figure
  380. will be used throughout this document to refer to the fields in DHCP
  381. messages.
  382.  
  383. There are two primary differences between DHCP and BOOTP.  First, DHCP
  384. provides the mechanism for a client to acquire all of the IP configuration
  385. parameters that it needs in order to operate.  Second, DHCP defines
  386. mechanisms through which DHCP servers coordinate the dynamic allocation of
  387. network addresses to requesting clients.
  388.  
  389. DHCP extends the use of the 'htype', 'hlen' and 'chaddr' fields to allow the
  390. use of client identifiers that are not hardware addresses.  Note that
  391. 'htype', 'hlen' and 'chaddr' are historic names and those fields may be used
  392. for any type of client identifier, other than just hardware addresses such
  393. as an Ethernet address.  The hardware type values defined in the ARP section
  394. of the ``Assigned Numbers'' RFC are reserved for use when the client
  395.  
  396. R. Droms                                                            [Page 7]
  397.  
  398.  
  399. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.                     Figure 1:  Format of a DHCP message
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454. R. Droms                                                            [Page 8]
  455.  
  456.  
  457. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  458.  
  459. identifier is a hardware address.  Two additional hardware type values,
  460. specifying a DNS name or a machine--specific serial number permanently
  461. stored with the client, are defined in table 1.  Other client identifier
  462. types may be defined as needed for use with DHCP.  New client identifier
  463. types should be registered with the IANA [18], and will be included in
  464. future revisions of the DHCP Options Internet Draft [2].
  465.  
  466. DHCP introduces a small change in terminology intended to clarify the
  467. meaning of one of the fields.  What was the ``vendor extensions'' field in
  468. BOOTP has been re-named the ``options'' field in DHCP. Similarly, the tagged
  469. data items that were used inside the BOOTP ``vendor extensions'' field,
  470. which were formerly referred to as ``vendor extensions,'' are now termed
  471. simply ``options.''
  472.  
  473. DHCP also carries forward the interpretation of the 'siaddr' field as the
  474. address of the server to use in the next step of the client's bootstrap
  475. process [21].  A DHCP server returns its own address in the 'server
  476. identifier' option.
  477.  
  478. In addition, the options field is now variable length, with the minimum
  479. extended to 312 octets.  This brings the minimum size of a DHCP message up
  480. to 576 octets, the minimum IP datagram size a host must be prepared to
  481. accept [3, Sec. 3.2.2, p. 56].  DHCP clients may negotiate the use of larger
  482. DHCP messages through the 'Maximum DHCP message size' option.  The options
  483. field may be further extended into the 'file' and 'sname' fields.
  484.  
  485.  
  486. 4.1 Components of the Protocol
  487.  
  488.  
  489. DHCP provides three distinct services:
  490.  
  491.  
  492.  
  493.   o A persistent, dynamic repository of configuration information for
  494.     clients.
  495.  
  496.   o Dynamic allocation of configuration resources such as network layer
  497.     addresses.
  498.  
  499.   o Distribution of configuration information among protocol servers.
  500.  
  501.  
  502. This document will separately describe the mechanisms through which DHCP
  503. provides the first two of these services.  A separate document will describe
  504. the operation of the DHCP distributed database.
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512. R. Droms                                                            [Page 9]
  513.  
  514.  
  515. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  516.  
  517. 4.2 Configuration parameters repository
  518.  
  519.  
  520. The first service provided by DHCP is to provide persistent storage of
  521. network parameters for network clients.  The model of DHCP persistent
  522. storage is that the DHCP service stores a key--value entry for each client,
  523. where the key is some unique identifier (an IP subnet number and a unique
  524. identifier within the subnet) and the value contains the configuration
  525. parameters for the client.
  526.  
  527. For example, the key might be the pair (IP--subnet--number,
  528. hardware--address), allowing for serial or concurrent reuse of a hardware
  529. address on different subnets, and for hardware addresses that may not be
  530. globally unique.  Alternately, the key might be the pair
  531. (IP--subnet--number, hostname), allowing the server to assign parameters
  532. intelligently to a host that has been moved to a different subnet or has
  533. changed hardware addresses (perhaps because the network interface failed and
  534. was replaced).
  535.  
  536. A client can query the DHCP service to retrieve its configuration
  537. parameters.  The client interface to the configuration parameters repository
  538. consists of protocol messages to request configuration parameters and
  539. responses from the server carrying the configuration parameters.
  540.  
  541.  
  542. 4.3 Dynamic allocation of network addresses
  543.  
  544.  
  545. The second service provided by DHCP is the allocation of temporary or
  546. permanent network (IP) addresses to hosts.  The basic mechanism for the
  547. dynamic allocation of network addresses is simple:  a client requests the
  548. use of an address for some period of time.  The allocation mechanism (the
  549. collection of DHCP servers) guarantees not to reallocate that address within
  550. the requested time and attempts to return the same network address each time
  551. the client requests an address.  In this document, the period over which a
  552. network address is allocated to a client is referred to as a ``lease'' [10].
  553. The client may extend its lease with subsequent requests.  The client may
  554. issue a message to release the address back to the server when the client no
  555. longer needs the address.  The client may ask for a permanent assignment by
  556. asking for an infinite lease.  Even when assigning ``permanent'' addresses,
  557. a server may choose to give out lengthy but non--infinite leases to allow
  558. detection of the fact that the host has been retired.
  559.  
  560. In some environments it will be necessary to reassign network addresses due
  561. to exhaustion of available addresses.  In such environments, the allocation
  562. mechanism will reuse addresses whose lease has expired.  The server should
  563. use whatever information is available in the configuration information
  564. repository to choose an address to reuse.  For example, the server may
  565. choose the least recently assigned address.  As a consistency check, the
  566. allocation mechanism may probe the reused address, e.g., with an ICMP echo
  567. request, before allocating the address, and the client will probe the newly
  568.  
  569.  
  570. R. Droms                                                           [Page 10]
  571.  
  572.  
  573. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  574.  
  575. received address, e.g., with ARP.
  576.  
  577.  
  578. 5 The Client--Server Protocol
  579.  
  580.  
  581. DHCP uses the BOOTP message format defined in RFC 951 and given in table 1
  582. and figure 1.  The 'op' field of each DHCP message sent from a client to a
  583. server contains BOOTREQUEST. BOOTREPLY is used in the 'op' field of each
  584. DHCP message sent from a server to a client.
  585.  
  586. The first four octets of the 'options' field of the DHCP message contain the
  587. (decimal) values 99, 130, 83 and 99, respectively (this is the same magic
  588. cookie as is defined in RFC 1048).  The remainder of the 'options' field
  589. consists a list of tagged parameters that are called ``options''.  All of
  590. the ``vendor extensions'' listed in RFC 1048 are also DHCP options.  A
  591. separate document, currently an Internet Draft, gives the complete set of
  592. options defined for use with DHCP.
  593.  
  594. Several options have been defined so far.  One particular option -- the
  595. ``DHCP message type'' option -- must be included in every DHCP message.
  596. This option defines the ``type'' of the DHCP message.  Additional options
  597. may be allowed, required, or not allowed, depending on the DHCP message
  598. type.
  599.  
  600. Throughout this document, DHCP messages that include a 'DHCP message type'
  601. option will be referred to by the type of the message; e.g., a DHCP message
  602. with 'DHCP message type' option type 1 will be referred to as a
  603. ``DHCPDISCOVER'' message.
  604.  
  605.  
  606. 5.1 Client--server interaction -- allocating a network address
  607.  
  608.  
  609. The following summary of the protocol exchanges between clients and servers
  610. refers to the DHCP messages described in table 2.  The timeline diagram in
  611. figure 2 shows the timing relationships in a typical client--server
  612. interaction.  If the client already knows its address, some steps may be
  613. omitted; this abbreviated interaction is described in section 5.2.
  614.  
  615.  
  616.  
  617.  1. The client broadcasts a DHCPDISCOVER message on its local physical
  618.     subnet.  The DHCPDISCOVER message may include options that suggest
  619.     values for the network address and lease duration.  DHCP/BOOTP relay
  620.     agents pass the message on to DHCP servers not on the same physical
  621.     subnet.
  622.  
  623.  2. Each server may respond with a DHCPOFFER message that includes an
  624.     available network address in the 'yiaddr' field.  Other configuration
  625.     parameters may be returned as options.  Servers need not reserve the
  626.     offered network address, although the protocol will work more
  627.  
  628. R. Droms                                                           [Page 11]
  629.  
  630.  
  631. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.   __FIELD__OCTETS_______________________DESCRIPTION______________________
  641.  
  642.   op            1  Message op code / message type.
  643.                    1 = BOOTREQUEST, 2 = BOOTREPLY
  644.   htype         1  Hardware address type, see  ARP section in ``Assigned
  645.                    Numbers''  RFC;  e.g.,  '1'  =  10mb ethernet.     In
  646.                    addition  to  ARP  identifiers, '0'  =  ``other  type
  647.                    identifier'' and '128' = DNS name.
  648.   hlen          1  Hardware  address   length  (e.g.     '6'   for  10mb
  649.                    ethernet).
  650.   hops          1  Client  sets  to  zero, optionally  used  by  relay--
  651.                    agents when booting via a relay--agent.
  652.   xid           4  Transaction  ID,  a  random   number  chosen  by  the
  653.                    client,  used by the  client and server  to associate
  654.                    messages  and  responses  between   a  client  and  a
  655.                    server.
  656.   secs          2  Filled  in by  client, seconds  elapsed since  client
  657.                    started trying to boot.
  658.   --            2  Unused.
  659.   ciaddr        4  Client   IP  address;    filled  in   by  client   in
  660.                    DHCPREQUEST  if unwilling  to accept  new IP  address
  661.                    from DHCP server.
  662.   yiaddr        4  'your'  (client)  IP address;   filled by  server  if
  663.                    client  doesn't know  its own  address ('ciaddr'  was
  664.                    0).
  665.   siaddr        4  Server  IP address;  returned  in DHCPOFFER,  DHCPACK
  666.                    and DHCPNAK by server.
  667.   giaddr        4  Relay  agent  IP  address,  used  in  booting  via  a
  668.                    relay--agent.
  669.   chaddr       16  Client hardware address.
  670.   sname        64  Optional server host name, null terminated string.
  671.   file        128  Boot file  name, null terminated string;  ``generic''
  672.                    name  or   null  in  DHCPDISCOVER,   fully  qualified
  673.                    directory--path name in DHCPOFFER.
  674.   options     312  Optional   parameters  field.      See  the   options
  675.                    documents for a list of defined options.
  676.  
  677.  
  678.              Table 1:  Description of fields in a DHCP message
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686. R. Droms                                                           [Page 12]
  687.  
  688.  
  689. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732. Figure 2:  Timeline  diagram of messages exchanged  between DHCP client  and
  733. servers when allocating a new network address
  734.  
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744. R. Droms                                                           [Page 13]
  745.  
  746.  
  747. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  748.  
  749.     efficiently if the server avoids allocating the offered network address
  750.     to another client.  The server unicasts the DHCPOFFER message to the
  751.     client (using the DHCP/BOOTP relay agent if necessary) if possible, or
  752.     may broadcast the message to the all--one's broadcast address on the
  753.     client's subnet.
  754.  
  755.  3. The client receives one or more DHCPOFFER messages from one or more
  756.     servers.  The client may choose to wait for multiple responses.  The
  757.     client chooses one server from which to request configuration
  758.     parameters, based on the configuration parameters offered in the
  759.     DHCPOFFER messages.  The client broadcasts a DHCPREQUEST message with
  760.     the 'ciaddr' field filled in with the network address from the
  761.     DHCPOFFER message sent by the selected server.  The client MUST include
  762.     the 'server identifier' option to indicate which server it has
  763.     selected, and may include other options specifying desired
  764.     configuration values.  This DHCPREQUEST message is broadcast and
  765.     relayed through DHCP/BOOTP relay agents.  To help ensure that any
  766.     DHCP/BOOTP relay agents forward the DHCPREQUEST message to the same set
  767.     of DHCP servers that received the original DHCPDISCOVER message, the
  768.     DHCPREQUEST message must use the same value in the DHCP message
  769.     header's 'secs' field and be sent to the same IP broadcast address as
  770.     the original DHCPDISCOVER message.  The client times out and
  771.     retransmits the DHCPDISCOVER message if the client receives no
  772.     DHCPOFFER messages.
  773.  
  774.  4. The servers receive the DHCPREQUEST broadcast from the client.  Those
  775.     servers not selected by the DHCPREQUEST message use the message as
  776.     notification that the client has declined that server's offer.  The
  777.     server selected in the DHCPREQUEST message commits the binding for the
  778.     client to persistent storage and responds with a DHCPACK message
  779.     containing the configuration parameters for the requesting client.  The
  780.     server generates a unique value to identify the lease and places it in
  781.     a 'lease identifier cookie' option included with the DHCPACK message.
  782.     The 'yiaddr' field in the DHCPACK messages is filled in with the
  783.     selected network address.
  784.  
  785.     If the selected server is unable to satisfy the DHCPREQUEST message
  786.     (e.g., the requested network address has been allocated), the server
  787.     responds with a DHCPNAK message.
  788.  
  789.     A server may choose to mark addresses offered to clients in DHCPOFFER
  790.     messages as unavailable.  The server should mark an address offered to
  791.     a client in a DHCPOFFER message as available if the server receives no
  792.     DHCPREQUEST message from that client.
  793.  
  794.  5. The client receives the DHCPACK message with configuration parameters.
  795.     The client performs a final check on the parameters (e.g., ARP for
  796.     allocated network address), and notes the duration of the lease and the
  797.     lease identification cookie specified in the DHCPACK message.  At this
  798.     point, the client is configured.  If the client detects a problem with
  799.     the parameters in the DHCPACK message, the client sends a DHCPDECLINE
  800.  
  801.  
  802. R. Droms                                                           [Page 14]
  803.  
  804.  
  805. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  806.  
  807.  
  808.  
  809.  ____Message_________________________________Use__________________________
  810.   DHCPDISCOVER  --  Client broadcast to locate available servers.
  811.  
  812.   DHCPOFFER     --  Server  to client  in response  to DHCPDISCOVER  with
  813.                     offer of configuration parameters.
  814.  
  815.   DHCPREQUEST   --  Client  broadcast   to  servers  requesting   offered
  816.                     parameters from  one server and  implicitly declining
  817.                     offers from all others.
  818.  
  819.   DHCPACK       --  Server  to  client   with  configuration  parameters,
  820.                     including committed network address.
  821.  
  822.   DHCPNAK       --  Server to  client refusing request  for configuration
  823.                     parameters (e.g.,  requested network address  already
  824.                     allocated).
  825.  
  826.   DHCPDECLINE   --  Client to server  indicating configuration parameters
  827.                     (e.g., network address) invalid.
  828.  
  829.   DHCPRELEASE   --  Client  to server relinquishing  network address  and
  830.                     cancelling remaining lease.
  831.  
  832.  
  833.                           Table 2:  DHCP messages
  834.  
  835.     message to the server and restarts the configuration process.  The
  836.     client should wait a minimum of ten seconds before restarting the
  837.     configuration process to avoid excessive network traffic in case of
  838.     looping.
  839.  
  840.     If the client receives a DHCPNAK message, the client restarts the
  841.     configuration process.
  842.  
  843.     The client times out and retransmits the DHCPREQUEST message if the
  844.     client receives neither a DHCPACK or a DHCPNAK message.
  845.  
  846.  6. The client may choose to relinquish its lease on a network address by
  847.     sending a DHCPRELEASE message to the server.  The client identifies the
  848.     lease to be released by including the 'lease identifier' option in the
  849.     DHCPRELEASE message.
  850.  
  851.  
  852.  
  853. 5.2 Client--server interaction -- reusing a previously allocated network
  854.     address
  855.  
  856.  
  857. If a client remembers and wishes to reuse a previously allocated network
  858. address (allocated either by DHCP or some means outside the protocol), a
  859.  
  860. R. Droms                                                           [Page 15]
  861.  
  862.  
  863. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885. Figure 3:  Timeline  diagram of messages exchanged  between DHCP client  and
  886. servers when reusing a previously allocated network address
  887.  
  888.  
  889. client may choose to omit some of the steps described in the previous
  890. section.  The timeline diagram in figure 3 shows the timing relationships in
  891. a typical client--server interaction for a client reusing a previously
  892. allocated network address.
  893.  
  894.  
  895.  1. The client broadcasts a DHCPREQUEST message on its local subnet.  The
  896.     DHCPREQUEST message includes the client's network address in the
  897.     'ciaddr' field and any other suggested configuration values as options.
  898.     DHCP/BOOTP relay agents pass the message on to DHCP servers not on the
  899.     same subnet.
  900.  
  901.  2. Servers with knowledge of the client's configuration parameters respond
  902.     with a DHCPACK message to the client.
  903.  
  904.     If the client's request is invalid (e.g., the client has moved to a new
  905.     subnet), servers may respond with a DHCPNAK message to the client.
  906.  
  907.  3. Client receives the DHCPACK message with configuration parameters.  The
  908.     client performs a final check on the parameters, and notes the duration
  909.     of the lease and the lease identification cookie specified in the
  910.     DHCPACK message.  At this point, the client is configured.
  911.  
  912.     If the client detects a problem with the parameters in the DHCPACK
  913.     message, the client sends a DHCPDECLINE message to the server and
  914.     restarts the configuration process in INIT state, requesting a new
  915.     network address.
  916.  
  917.  
  918. R. Droms                                                           [Page 16]
  919.  
  920.  
  921. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  922.  
  923.     If the client receives a DHCPNAK message, it cannot reuse its
  924.     remembered network address.  It must instead request a new address by
  925.     restarting the configuration process, this time using the
  926.     (non--abbreviated) procedure described in section 5.1.  This action
  927.     corresponds to the client moving to the INIT state in the DHCP state
  928.     diagram, which will be described in section 6.4.
  929.  
  930.     The client times out and retransmits the DHCPREQUEST message if the
  931.     client receives neither a DHCPACK or a DHCPNAK message.  If the client
  932.     receives no response to repeated DHCPREQUEST messages (how many?), the
  933.     client restarts the configuration process in INIT state.
  934.  
  935.  4. The client may choose to relinquish its lease on a network address by
  936.     sending a DHCPRELEASE message to the server.  The client identifies the
  937.     lease to be released with the lease identification cookie.
  938.  
  939.     Note that in this case, where the client retains its network address
  940.     locally, the client will not normally relinquish its lease during a
  941.     graceful shutdown.  Only in the case where the client explicitly needs
  942.     to relinquish its lease, e.g., the client is about to be moved to a
  943.     different subnet, will the client send a DHCPRELEASE message.
  944.  
  945.  
  946.  
  947. 5.3 Interpretation and representation of time values
  948.  
  949.  
  950. A client acquires a lease for a network address for a fixed period of time
  951. (which may be infinite).  Throughout the protocol, times are to be
  952. represented in units of seconds.  The time value of all 1s is reserved to
  953. represent ``infinity''.  The minimum lease duration is one hour.
  954.  
  955. As clients and servers may not have synchronized clocks, times are
  956. represented in DHCP messages as relative times, to be interpreted with
  957. respect to the client's local clock.  Representing relative times in units
  958. of seconds in an unsigned 32 bit word gives a range of relative times from 0
  959. to approximately 100 years, which is sufficient for the relative times to be
  960. measured using DHCP.
  961.  
  962. The algorithm for lease duration interpretation given in the previous
  963. paragraph assumes that client and server clocks are stable relative to each
  964. other.  If there is drift between the two clocks, the server may consider
  965. the lease expired before the client does.  To compensate, the server may
  966. return a shorter lease duration to the client than the server commits to its
  967. local database of client information.
  968.  
  969.  
  970. 5.4 Host parameters in DHCP
  971.  
  972.  
  973. Not all clients require initialization of all parameters listed in
  974. Appendix A.  Two techniques are used to reduce the number of parameters
  975.  
  976. R. Droms                                                           [Page 17]
  977.  
  978.  
  979. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  980.  
  981. transmitted from the server to the client.  First, most of the parameters
  982. have defaults defined in the Host Requirements RFCs; if the client receives
  983. no parameters from the server that override the defaults, a client uses
  984. those default values.  Second, in its initial DHCPDISCOVER or DHCPREQUEST
  985. message, a client may provide the server with a list of specific parameters
  986. the client is interested in.
  987.  
  988. The parameters returned to a client may still exceed the space allocated to
  989. options in a DHCP message.  In this case, two additional options flags
  990. (which must appear in the 'options' field of the message) indicate that the
  991. 'file' and 'sname' fields are to be used for options.
  992.  
  993. There are two ways that the client can inform the server which configuration
  994. parameters the client is interested in.  First, it can include the
  995. 'parameter request vector' option in the DHCPDISCOVER or DHCPREQUEST
  996. message.  In the 'parameter request vector' data, a one bit in position n in
  997. the vector represents an explicit request for the option parameter with tag
  998. n.  Second, the client can include the 'parameter request list' option.  The
  999. data portion of this option explicitly lists options by tag number.
  1000.  
  1001. In addition, the client may suggest values for the network address and lease
  1002. time in the DHCPDISCOVER message.  The client may include the 'requested IP
  1003. address' option to suggest that a particular IP address be assigned, and may
  1004. include the 'IP address lease time' option to suggest the lease time it
  1005. would like.  The client may include the 'maximum DHCP message size' option
  1006. to let the server know how large the server may make its DHCP messages.  No
  1007. other options representing ``hints'' at configuration parameters are allowed
  1008. in a DHCPDISCOVER message.  The 'ciaddr' field is to be filled in
  1009.  
  1010. If a server receives a DHCPREQUEST message with an invalid 'ciaddr', the
  1011. server responds to the client with a DHCPNAK message and may choose to
  1012. report the problem to the system administrator.  The server may include an
  1013. error message in the 'message' option.
  1014.  
  1015. The client should specify the largest acceptable DHCP message with the 'DHCP
  1016. message size' option to ensure that the server can transmit all the
  1017. appropriate parameters in a single DHCP message.
  1018.  
  1019.  
  1020. 5.5 Use of DHCP in clients with multiple interfaces
  1021.  
  1022.  
  1023. A host with multiple network interfaces must use DHCP through each interface
  1024. independently to obtain configuration information parameters for those
  1025. separate interfaces.
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034. R. Droms                                                           [Page 18]
  1035.  
  1036.  
  1037. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  1038.  
  1039. 5.6 When clients should use DHCP
  1040.  
  1041.  
  1042. A host should use DHCP to reacquire or verify its IP address and network
  1043. parameters whenever the local network parameters may have changed; e.g., at
  1044. system boot time or after a disconnection from the local network, as the
  1045. local network configuration may change without the host's or user's
  1046. knowledge.
  1047.  
  1048. If a host has knowledge of a previous network address and is unable to
  1049. contact a local DHCP server, the host may continue to use the previous
  1050. network address until the lease for that address expires.  If the lease
  1051. expires before the host can contact a DHCP server, the host must immediately
  1052. discontinue use of the previous network address and may inform local users
  1053. of the problem.
  1054.  
  1055.  
  1056. 6 Specification of the DHCP client--server protocol
  1057.  
  1058.  
  1059. In this section, we assume that a DHCP server has a block of network
  1060. addresses from which it can satisfy requests for new addresses.  Each server
  1061. also maintains a database of allocated addresses and leases in local
  1062. permanent storage.
  1063.  
  1064.  
  1065. 6.1 Constructing and sending DHCP messages
  1066.  
  1067.  
  1068. DHCP clients and servers both construct DHCP messages by filling in fields
  1069. in the fixed format section of the message and appending tagged data items
  1070. in the variable length option area.  The options area includes first a
  1071. four--octet 'magic cookie' (which was described in section 5), followed by
  1072. the options.  The last option must always be the 'end' option.
  1073.  
  1074. DHCP uses UDP as its transport protocol.  DHCP messages from a client to a
  1075. server are sent to the 'DHCP server' port (67), and DHCP messages from a
  1076. server to a client are sent to the 'DHCP client' port (68).
  1077.  
  1078. DHCP messages broadcast by a client prior to that client obtaining its IP
  1079. address must have the source address field in the IP header set to 0.
  1080.  
  1081. If the 'giaddr' field in a DHCP message from a client is non--zero, the
  1082. server sends any return messages to the 'DHCP client' port on the DHCP
  1083. relaying agent whose address appears in 'giaddr'.  If the 'giaddr' field is
  1084. zero, the client is on the same subnet, and the server sends any return
  1085. messages to either the client's network address, if that address was
  1086. supplied in the 'ciaddr' field, or to the client's hardware address or to
  1087. the local subnet broadcast address.
  1088.  
  1089.  
  1090.  
  1091.  
  1092. R. Droms                                                           [Page 19]
  1093.  
  1094.  
  1095. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  1096.  
  1097. 6.2 DHCP server administrative controls
  1098.  
  1099.  
  1100. DHCP servers are not required to respond to every DHCPDISCOVER and
  1101. DHCPREQUEST message they receive.  For example, a network administrator, to
  1102. retain more precise control over the hosts attached to the network, may
  1103. choose to configure DHCP servers to respond only to hosts that have been
  1104. previously registered through some external mechanism.  The DHCP
  1105. specification describes only the interactions between clients and servers
  1106. when the clients and servers choose to interact; it is beyond the scope of
  1107. the DHCP specification to describe all of the administrative controls that
  1108. system administrators might want to use.  Specific DHCP server
  1109. implementations may incorporate any controls or policies desired by a
  1110. network administrator.
  1111.  
  1112. DHCP servers are also not required to furnish the same configuration
  1113. parameters to every client on a particular network or subnet.  For example,
  1114. a DHCP server may return the IP address of different bootstrap servers in
  1115. the 'siaddr' field depending on the type of DHCP client.
  1116.  
  1117.  
  1118. 6.3 DHCP server behavior
  1119.  
  1120.  
  1121. A DHCP server processes incoming DHCP messages from a client based on the
  1122. current state of the binding for that client.  A DHCP server can receive the
  1123. following messages from a client:
  1124.  
  1125.  
  1126.  
  1127.   o DHCPDISCOVER
  1128.  
  1129.   o DHCPREQUEST
  1130.  
  1131.   o DHCPDECLINE
  1132.  
  1133.   o DHCPRELEASE
  1134.  
  1135.  
  1136. Table 3 gives the use of the fields and options in a DHCP message by a
  1137. server.  The remainder of this section describes the action of the DHCP
  1138. server for each possible incoming message.
  1139.  
  1140.  
  1141. 6.3.1 DHCPDISCOVER message
  1142.  
  1143.  
  1144. When a server receives a DHCPDISCOVER message from a client, the server
  1145. chooses a network address for the requesting client.  If no address is
  1146. available, the server may choose to report the problem to the system
  1147. administrator and may choose to reply to the client with a DHCPNAK message.
  1148. If the server chooses to respond to the client, it may include an error
  1149.  
  1150. R. Droms                                                           [Page 20]
  1151.  
  1152.  
  1153. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161. Field_________DHCPOFFER____________DHCPACK_____________DHCPNAK______________
  1162. 'op'          BOOTREPLY            BOOTREPLY           BOOTREPLY
  1163. 'htype'       (From  ``Assigned  Numbers''  RFC; 0  implies  ``other  type
  1164.               identifier'')
  1165. 'hlen'                     (Hardware adress length in octets)
  1166. 'hops'        0                    0                   0
  1167. 'xid'         'xid'  from  client  'xid'          from 'xid'          from
  1168.               DHCPDISCOVER         client  DHCPREQUEST client  DHCPREQUEST
  1169.               message              message             message
  1170. secs          0                    0                   0
  1171. 'ciaddr'      0                    0                   0
  1172. 'yiaddr'      IP address  offered  IP   address    as- 0
  1173.               to client            signed to client
  1174. 'siaddr'      IP    address    of  IP    address    of IP    address    of
  1175.               server               server              server
  1176. 'giaddr'      0                    0                   0
  1177. 'chaddr'      'chaddr'       from  'chaddr'       from 'chaddr'       from
  1178.               client        DHCP-  client  DHCPREQUEST client  DHCPREQUEST
  1179.               DISCOVER message     message             message
  1180. 'sname'       Server  host   name  Server  host   name (unused)
  1181.               or options           or options
  1182. 'file'        Client  boot   file  Client  boot   file (unused)
  1183.               name or options      name or options
  1184. 'options'     options              options
  1185.  
  1186. Option___________________DHCPOFFER________DHCPACK__________DHCPNAK__________
  1187. Requested IP address     MUST NOT         MUST NOT         MUST NOT
  1188. IP address lease time    MUST             MUST             MUST NOT
  1189. Use      'file'/'sname'  MAY              MAY              MUST NOT
  1190. fields
  1191. DHCP message type        DHCPOFFER        DHCPACK          DHCPNAK
  1192. Lease        identifier  MUST             MUST             MUST NOT
  1193. cookie
  1194. Parameter       request  MUST NOT         MUST NOT         MUST NOT
  1195. vector
  1196. Parameter request list   MUST NOT         MUST NOT         MUST NOT
  1197. Message                  MAY              MAY              MAY
  1198. All others               MAY              MAY              MUST NOT
  1199.  
  1200.              Table 3:  Fields and options used by DHCP servers
  1201.  
  1202.  
  1203.  
  1204.  
  1205.  
  1206.  
  1207.  
  1208. R. Droms                                                           [Page 21]
  1209.  
  1210.  
  1211. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  1212.  
  1213. message in the 'message' option.  If an address is available, the new
  1214. address should be chosen as follows:
  1215.  
  1216.  
  1217.  
  1218.   o The client's previous address as recorded in the client's binding, if
  1219.     that address is in the server's pool of available addresses and not
  1220.     already allocated, else
  1221.  
  1222.   o The address requested in the 'Requested IP Address' option, if that
  1223.     address is valid and not already allocated, else
  1224.  
  1225.   o A new address allocated from the server's pool of available addresses.
  1226.  
  1227.  
  1228. While not required for correct operation of DHCP, the server should arrange
  1229. to avoid reusing the selected network address soon after offering the
  1230. address to the client.  The server may choose to record the address as
  1231. offered to the client.
  1232.  
  1233. The server must also choose an expiration time for the lease, as follows:
  1234.  
  1235.  
  1236.   o If the client has not requested a specific lease in the DHCPDISCOVER
  1237.     message and the client already has an assigned network address, the
  1238.     server returns the existing lease expiration time.
  1239.  
  1240.   o If the client has not requested a specific lease in the DHCPDISCOVER
  1241.     message and the client does not have an assigned network address, the
  1242.     server assigns a locally configured default lease time.
  1243.  
  1244.   o If the client has requested a specific lease in the DHCPDISCOVER
  1245.     message (regardless of whether the client has an assigned network
  1246.     address), the server may choose either to return the requested lease
  1247.     (if the lease is acceptable to local policy) or select another lease.
  1248.  
  1249.  
  1250. Once the network address and lease have been determined, the server
  1251. constructs a DHCPOFFER message with the offered initialization parameters:
  1252.  
  1253.  
  1254.  
  1255.   o The client's network address and subnet mask.
  1256.  
  1257.   o The expiration time for the client's lease.
  1258.  
  1259.   o Parameters requested by the client.
  1260.  
  1261.   o Parameters with non--default values on the client's subnet.
  1262.  
  1263.  
  1264.  
  1265.  
  1266. R. Droms                                                           [Page 22]
  1267.  
  1268.  
  1269. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  1270.  
  1271. The server inserts the 'xid' field from the DHCPDISCOVER message into the
  1272. 'xid' field of the DHCPOFFER message and sends the DHCPOFFER message to the
  1273. requesting client.
  1274.  
  1275.  
  1276. 6.3.2 DHCPREQUEST message
  1277.  
  1278.  
  1279. A DHCPREQUEST message may come from a client responding to a DHCPOFFER
  1280. message from a server, or from a client verifying a previously allocated IP
  1281. address.  If the DHCPREQUEST message contains a 'server identifier' option,
  1282. the message is in response to a DHCPREQUEST message.
  1283.  
  1284. Consider first the case of a DHCPREQUEST message in response to a DHCPOFFER
  1285. message.  If the server is identified in the 'server identifier' option in
  1286. the DHCPREQUEST message, the server checks to confirm that the requested
  1287. parameters are acceptable.  Usually, the requested parameters will match
  1288. those returned to the client in the DHCPOFFER message; however, the client
  1289. may choose to request a different lease duration.  Also, there is no
  1290. requirement that the server cache the parameters from the DHCPOFFER message.
  1291. The server must simply check that the parameters requested in the
  1292. DHCPREQUEST are acceptable.  If the parameters are acceptable, the server
  1293. records the new client binding and returns a DHCPACK message to the client.
  1294.  
  1295. If the requested parameters are unacceptable, e.g., the requested lease time
  1296. is unacceptable to local policy, the server sends a DHCPNAK message to the
  1297. client.  The server may choose to return an error message in the 'message'
  1298. option.
  1299.  
  1300. If a different server is identified in the 'server identifier' field, the
  1301. client has selected a different server from which to obtain configuration
  1302. parameters.  The server may discard any information it may have cached about
  1303. the client's request, and may free the network address that it had offered
  1304. to the client.
  1305.  
  1306. Note that the client may choose to collect several DHCPOFFER messages and
  1307. select the ``best'' offer.  The client indicates its selection by
  1308. identifying the offering server in the DHCPREQUEST message.  If the client
  1309. receives no acceptable offers, the client may choose to try another
  1310. DHCPDISCOVER message.  Therefore, the servers may not receive a specific
  1311. DHCPREQUEST from which they can decide whether or not the client has
  1312. accepted the offer.  Because the servers have not committed any network
  1313. address assignments on the basis of a DHCPOFFER, servers are free to reuse
  1314. offered network addresses in response to subsequent requests.  As an
  1315. implementation detail, servers should try to arrange to avoid reusing
  1316. offered addresses and may use an implementation--specific timeout mechanism
  1317. to decide when to reuse an offered address.
  1318.  
  1319. In the second case, when there is no 'server identifier' option, the client
  1320. is verifying a previously allocated IP address.  The server checks to
  1321. confirm that the requested parameters are acceptable.  If the parameters
  1322.  
  1323.  
  1324. R. Droms                                                           [Page 23]
  1325.  
  1326.  
  1327. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  1328.  
  1329. specified in the DHCPREQUEST message match the previous parameters, the
  1330. server returns a DHCPACK message to the requesting client.  Otherwise, the
  1331. server returns a DHCPNAK message to the client.
  1332.  
  1333.  
  1334. 6.3.3 DHCPDECLINE message
  1335.  
  1336.  
  1337. If the server receives a DHCPDECLINE message, the client has discovered
  1338. through some other means that the suggested network address is already in
  1339. use.  The server marks the network address as not allocated and may notify
  1340. the local system administrator of a possible configuration problem.
  1341.  
  1342.  
  1343. 6.3.4 DHCPRELEASE message
  1344.  
  1345.  
  1346. Upon receipt of a DHCPRELEASE message, the server marks the network address
  1347. as not allocated.  The server should retain a record of the client's
  1348. initialization parameters for possible reuse in response to subsequent
  1349. requests from the client.
  1350.  
  1351.  
  1352. 6.4 DHCP client behavior
  1353.  
  1354.  
  1355. Figure 4 gives a state--transition diagram for a DHCP client.  A client can
  1356. receive the following messages from a server:
  1357.  
  1358.  
  1359.  
  1360.   o DHCPOFFER
  1361.  
  1362.   o DHCPACK
  1363.  
  1364.   o DHCPNAK
  1365.  
  1366.  
  1367. Table 4 gives the use of the fields and options in a DHCP message by a
  1368. client.  The remainder of this section describes the action of the DHCP
  1369. client for each possible incoming message.
  1370.  
  1371.  
  1372. 6.4.1 Initialization and allocation of network address
  1373.  
  1374.  
  1375. The client begins in INIT state and forms a DHCPDISCOVER message.  The
  1376. client should wait a random time between one and ten seconds to
  1377. desynchronize the use of DHCP at startup.  The client sets 'ciaddr' to all
  1378. 0s.  The client may request specific parameters by including the 'parameter
  1379. request vector' or 'parameter request list' option.  The client may suggest
  1380. a network address and/or lease time by including the 'requested IP address'
  1381.  
  1382. R. Droms                                                           [Page 24]
  1383.  
  1384.  
  1385. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408.  
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.            Figure 4:  State--transition diagram for DHCP clients
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440. R. Droms                                                           [Page 25]
  1441.  
  1442.  
  1443. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453. Field      DHCPDISCOVER          DHCPREQUEST           DHCPDECLINE,
  1454. _______________________________________________________DHCPRELEASE___________
  1455. 'op'       BOOTREQUEST           BOOTREQUEST           BOOTREQUEST
  1456. 'htype'    (From  ``Assigned   Numbers''  RFC;  0  implies  ``other  type
  1457.            identifier'')
  1458. 'hlen'                    (Hardware address length in octets)
  1459. 'hops'     0                     0                     0
  1460. 'xid'      selected by client    selected by client    selected by client
  1461. 'secs'     (opt.)                (opt.)                0
  1462. 'ciaddr'   0                     requested address     0
  1463. 'yiaddr'   0                     0                     0
  1464. 'siaddr'   0                     0                     0
  1465. 'giaddr'   0                     0                     0
  1466. 'chaddr'   client's       hard-  client's       hard-  client's       hard-
  1467.            ware    address   or  ware    address   or  ware    address   or
  1468.            identifier            identifier            identifier
  1469. 'sname'    options (opt.)        options (opt.)        (unused)
  1470. 'file'     options (opt.)        options (opt.)        (unused)
  1471. 'options'  options               options               (unused)
  1472.  
  1473.  
  1474. Option                     DHCPDISCOVER  DHCPREQUEST  DHCPDECLINE,
  1475. ______________________________________________________DHCPRELEASE________
  1476. Requested IP address       MAY           MUST NOT     MUST NOT
  1477. IP address lease time      MAY           MAY          MUST NOT
  1478. Use 'file'/'sname' fields  MAY           MAY          MAY
  1479. DHCP message type          DHCPDISCOVER  DHCPREQUEST  DHCPDECLINE/
  1480.                                                       DHCPRELEASE
  1481. Lease identifier cookie    MUST NOT      MUST NOT     MUST NOT
  1482. Parameter request vector   MAY           MAY          MUST NOT
  1483. Parameter request list     MAY           MAY          MUST NOT
  1484. Message                    MUST NOT      MUST NOT     MUST NOT
  1485. All others                 MUST NOT      MUST NOT     MUST NOT
  1486.  
  1487.              Table 4:  Fields and options used by DHCP clients
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498. R. Droms                                                           [Page 26]
  1499.  
  1500.  
  1501. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  1502.  
  1503. and 'IP address lease time' options.  The client generates and records a
  1504. random transaction identifier and inserts that identifier into the 'xid'
  1505. field.  The client records its own local time for later use in computing the
  1506. lease expiration.  The client then broadcasts the DHCPDISCOVER on the local
  1507. hardware broadcast address to the all-ones IP broadcast address and 'DHCP
  1508. server' UDP port.
  1509.  
  1510.  
  1511.  
  1512.     AUTHOR'S NOTE: The client must implement a timeout and
  1513.     retransmission with exponential backoff algorithm for the receipt
  1514.     of the DHCPOFFER message.
  1515.  
  1516.  
  1517. If the 'xid' of an arriving DHCPOFFER message does not match the 'xid' of
  1518. the most recent DHCPDISCOVER message, the DHCPOFFER message is silently
  1519. discarded.  Any arriving DHCPACK messages are silently discarded.
  1520.  
  1521. The client collects DHCPOFFER messages over a period of time, selects one
  1522. DHCPOFFER message from the (possibly many) incoming DHCPOFFER messages
  1523. (e.g., the first DHCPOFFER message or the DHCPOFFER message from the
  1524. previously used server) and extracts the server address from the DHCPOFFER
  1525. message.  The time over which the client collects messages and the mechanism
  1526. used to select one DHCPOFFER are implementation dependent.  The client may
  1527. perform a check on the suggested address to ensure that the address is not
  1528. already in use.  For example, if the client is on a network that supports
  1529. ARP, the client may issue an ARP request for the suggested request.  When
  1530. broadcasting an ARP request for the suggested address, the client must fill
  1531. in its own hardware address as the sender's hardware address, and 0 as the
  1532. sender's IP address, to avoid confusing ARP caches in other hosts on the
  1533. same subnet.  If the network address appears to be in use, the client sends
  1534. a DHCPDECLINE message to the server and waits for another DHCPOFFER. As the
  1535. client does not have a valid network address, the client must broadcast the
  1536. DHCPDECLINE message.
  1537.  
  1538. If the parameters are acceptable, the client records the address of the
  1539. server that supplied the parameters from the 'server identifier' field and
  1540. sends that address in the 'server identifier' field of a DHCPREQUEST
  1541. broadcast message.  Once the DHCPACK message from the server arrives, the
  1542. client is initialized and moves to BOUND state.  The DHCPREQUEST message
  1543. contains the same 'xid' as the DHCPOFFER message.  The client records the
  1544. lease expiration time as the sum of the time at which the original request
  1545. was sent and the duration of the lease from the DHCPOFFER message.
  1546.  
  1547.  
  1548. 6.4.2 Initialization with known network address
  1549.  
  1550.  
  1551. The client begins in REBOOTING state and sends a DHCPREQUEST message with
  1552. the 'ciaddr' field set to the client's network address.  The client may
  1553. request specific configuration parameters by including the 'parameter
  1554. request vector' or 'parameter request list' options.  The client generates
  1555.  
  1556. R. Droms                                                           [Page 27]
  1557.  
  1558.  
  1559. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  1560.  
  1561. and records a random transaction identifier and inserts that identifier into
  1562. the 'xid' field.  The client records its own local time for later use in
  1563. computing the lease expiration.  The client then broadcasts the DHCPREQUEST
  1564. on the local hardware broadcast address to the 'DHCP server' UDP port.
  1565.  
  1566.  
  1567.  
  1568.     AUTHOR'S NOTE: The client must implement a timeout and
  1569.     retransmission with exponential backoff algorithm for the receipt
  1570.     of the DHCPOFFER message.
  1571.  
  1572.  
  1573. Once a DHCPACK message with an 'xid' field matching that in the client's
  1574. DHCPREQUEST message arrives from any server, the client is initialized and
  1575. moves to BOUND state.  The client records the lease expiration time as the
  1576. sum of the time at which the DHCPREQUEST message was sent and the duration
  1577. of the lease from the DHCPACK message.
  1578.  
  1579.  
  1580. 6.4.3 Initialization with a known DHCP server address
  1581.  
  1582.  
  1583. When the DHCP client knows the address of a DHCP server, in either INIT or
  1584. REBOOTING state, the client may use that address in the DHCPDISCOVER or
  1585. DHCPREQUEST rather than the IP broadcast address.  If the client receives no
  1586. response to DHCP messages sent to the IP address of a known DHCP server, the
  1587. DHCP client reverts to using the IP broadcast address.
  1588.  
  1589.  
  1590. 6.4.4 Reacquisition and expiration
  1591.  
  1592.  
  1593. The client maintains two times, T1 and T2, that specify the times at which
  1594. the client tries to extend its lease on its network address.  T1 is the
  1595. time at which the client enters the RENEWING state and attempts to contact
  1596. the server that originally issued the client's network address.  T2 is the
  1597. time at which the client enters the REBINDING state and attempts to contact
  1598. any server.
  1599.  
  1600. At time T1 after the client accepts the lease on its network address, the
  1601. client moves to RENEWING state and sends (via unicast) a DHCPREQUEST message
  1602. to the server to extend its lease.  The client generates a random
  1603. transaction identifier and inserts that identifier into the 'xid' field in
  1604. the DHCPREQUEST. The client records the local time at which the DHCPREQUEST
  1605. message is sent for computation of the lease expiration time.
  1606.  
  1607. Any DHCPACK messages that arrive with an 'xid' that does not match the 'xid'
  1608. of the client's DHCPREQUEST message are silently discarded.  When the client
  1609. receives a DHCPACK from the server, the client computes the lease expiration
  1610. time as the sum of the time at which the client sent the DHCPREQUEST message
  1611. and the duration of the lease in the DHCPACK message.  The client has
  1612. successfully reacquired its network address, returns to BOUND state and may
  1613.  
  1614. R. Droms                                                           [Page 28]
  1615.  
  1616.  
  1617. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  1618.  
  1619. continue network processing.
  1620.  
  1621. If no DHCPACK arrives before time T2 (T2 > T1) before the expiration of the
  1622. client's lease on its network address, the client moves to REBINDING state
  1623. and sends (via broadcast) a DHCPREQUEST message to extend its lease.  The
  1624. client sets the 'ciaddr' field in the DHCPREQUEST to its current network
  1625. address.
  1626.  
  1627.  
  1628.  
  1629.     AUTHOR'S NOTE: The client must implement a timeout and
  1630.     retransmission with exponential backoff algorithm to retry the
  1631.     unicast and broadcast DHCPDISCOVER messages.
  1632.  
  1633.  
  1634. Times T1 and T2 are configurable by the server through options.  T1
  1635. defaults to (0.5 * duration_of_lease).  T2 defaults to
  1636. (0.875 * duration_of_lease).  Times T1 and T2 should be chosen with some
  1637. random ``fuzz'' around a fixed value, to avoid synchronization of client
  1638. reacquisition.
  1639.  
  1640. If the lease expires before the client receives a DHCPACK, the client moves
  1641. to INIT state, must immediately stop any other network processing and
  1642. request network initialization parameters as if the client were
  1643. uninitialized.  If the client then receives a DHCPACK allocating that client
  1644. its previous network address, the client may continue network processing.
  1645. If the client is given a new network address, it may not continue using the
  1646. previous network address and must notify the local users of the problem.
  1647.  
  1648.  
  1649. 6.4.5 DHCPRELEASE
  1650.  
  1651.  
  1652. If the client no longer requires use of its assigned network address (e.g.,
  1653. the client is gracefully shut down), the client sends a DHCPRELEASE message
  1654. to the server.  Note that the correct operation of DHCP does not depend on
  1655. the transmission of DHCPRELEASE messages.
  1656.  
  1657.  
  1658. 7 Security Considerations
  1659.  
  1660.  
  1661. This document does not address security issues.
  1662.  
  1663.  
  1664. 8 Acknowledgments
  1665.  
  1666.  
  1667. Greg Minshall, Leo McLaughlin and John Veizades have patiently contributed
  1668. to the the design of DHCP through innumerable discussions, meetings and mail
  1669. conversations.  Jeff Mogul first proposed the client--server based model for
  1670.  
  1671.  
  1672. R. Droms                                                           [Page 29]
  1673.  
  1674.  
  1675. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  1676.  
  1677. DHCP.  Steve Deering searched the various IP RFCs to put together the list
  1678. of network parameters supplied by DHCP.  Walt Wimer contributed a wealth of
  1679. practical experience with BOOTP and wrote a document clarifying the behavior
  1680. of BOOTP/DHCP relay agents.  Jesse Walker analyzed DHCP in detail, pointing
  1681. out several inconsistencies in earlier specifications of the protocol.
  1682. Steve Alexander reviewed Walker's analysis and the fixes to the protocol
  1683. based on Walker's work.  And, of course, all the members of the Dynamic Host
  1684. Configuration Working Group of the IETF have contributed to the design of
  1685. the protocol through discussion and review of the protocol design.
  1686.  
  1687.  
  1688. 9 Author's Address
  1689.  
  1690.  
  1691.     Ralph Droms
  1692.     Computer Science Department
  1693.     323 Dana Engineering
  1694.     Bucknell University
  1695.     Lewisburg, PA 17837
  1696.  
  1697.     (717) 524--1145
  1698.     droms@bucknell.edu
  1699.  
  1700.  
  1701.  
  1702. 10 References
  1703.  
  1704.  
  1705. This document references several other Internet Drafts.  According to the
  1706. IETF policy stated in section 2, Internet Drafts should not be used as
  1707. reference material.  Any references to Internet Drafts will be deleted or
  1708. changed to reference the appropriate RFCs before this document is published
  1709. as an RFC.
  1710.  
  1711.  
  1712. 11 Expiration date
  1713.  
  1714.  
  1715. This document will expire on June 1, 1993.
  1716.  
  1717.  
  1718. References
  1719.  
  1720.  
  1721.  [1] M. Acetta. Resource Location Protocol. RFC 887, NIC, December 1983.
  1722.  
  1723.  [2] Steve Alexander and Ralph Droms. DHCP Options and BOOTP Vendor
  1724.      Extensions. Internet Draft, NIC, November 1992.
  1725.  
  1726.  [3] R. Braden (Ed.). Requirements for Internet Hosts -- Communication
  1727.      Layers. RFC 1122, NIC, October 1989.
  1728.  
  1729.  
  1730. R. Droms                                                           [Page 30]
  1731.  
  1732.  
  1733. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  1734.  
  1735.  [4] R. Braden (Ed.). Requirements for Internet Hosts -- Application and
  1736.      Support. RFC 1123, NIC, October 1989.
  1737.  
  1738.  [5] David Brownell. Dynamic Reverse Address Resolution Protocol (DRARP).
  1739.      RFC DRAFT, NIC, 1989.
  1740.  
  1741.  [6] D. Comer and R. Droms. Uniform Access to Internet Directory Services.
  1742.      Proc. of ACM SIGCOMM '90 (Special issue of Computer Communications
  1743.      Review), 20(4):50--59, 1990.
  1744.  
  1745.  [7] B Croft and J. Gilmore. Bootstrap Protocol (BOOTP). RFC 951, NIC,
  1746.      September 1985.
  1747.  
  1748.  [8] S. Deering. ICMP Router Discovery Messages. RFC 1256, NIC, September
  1749.      1991.
  1750.  
  1751.  [9] R. Finlayson, T. Mann, J. Mogul, and M. Theimer. A Reverse Address
  1752.      Resolution Protocol. RFC 903, NIC, June 1984.
  1753.  
  1754. [10] C. G. Gray and D. R. Cheriton. Leases:  An Efficient Fault-Tolerant
  1755.      Mechanism for Distributed File Cache Consistency. In Proc. of the
  1756.      Twelfth ACM Symposium on Operating Systems Design, 1989.
  1757.  
  1758. [11] P. Mockapetris. Domain Names -- Concepts and Facilities. RFC 1034,
  1759.      NIC, November 1987.
  1760.  
  1761. [12] P. Mockapetris. Domain Names -- Implementation and Specification. RFC
  1762.      1035, NIC, November 1987.
  1763.  
  1764. [13] J. Mogul and S. Deering. Path MTU Discovery. RFC 1191, NIC, November
  1765.      1990.
  1766.  
  1767. [14] R. L. Morgan. Dynamic IP Address Assignment for Ethernet Attached
  1768.      Hosts. RFC DRAFT, NIC, 1989.
  1769.  
  1770. [15] J. Postel. Internet Control Message Protocol. RFC 792, NIC, September
  1771.      1981.
  1772.  
  1773. [16] P. Prindeville. BOOTP Vendor Information Extensions. RFC 1048, NIC,
  1774.      February 1988.
  1775.  
  1776. [17] J. Reynolds. BOOTP Vendor Information Extensions. RFC 1084, NIC,
  1777.      December 1988.
  1778.  
  1779. [18] J. Reynolds and J. Postel. Assigned Numbers. RFC 1340, NIC, July 1992.
  1780.  
  1781. [19] Jeffrey Schiller and Mark Rosenstein. A Protocol for the Dynamic
  1782.      Assignment of IP Addresses for use on an Ethernet. (Available from the
  1783.      Athena Project, MIT), 1989.
  1784.  
  1785. [20] K. Sollins. The TFTP Protocol (Revision 2). RFC 783, NIC, June 1981.
  1786.  
  1787.  
  1788. R. Droms                                                           [Page 31]
  1789.  
  1790.  
  1791. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  1792.  
  1793. [21] W. Wimer. Clarifications and Extensions for the Bootstrap Protocol.
  1794.      Internet Draft, NIC, 1991.
  1795.  
  1796.  
  1797.  
  1798.  
  1799.  
  1800.  
  1801.  
  1802.  
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846. R. Droms                                                           [Page 32]
  1847.  
  1848.  
  1849. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  1850.  
  1851. A  Host Configuration Parameters
  1852.  
  1853.  
  1854.       IP--layer_parameters,_per_host:_
  1855.  
  1856.       Be a router                     on/off              HRC 3.1
  1857.       Non--local source routing       on/off              HRC 3.3.5
  1858.       Policy filters for
  1859.        non--local source routing      (list)              HRC 3.3.5
  1860.       Maximum reassembly size         integer             HRC 3.3.2
  1861.       Default TTL                     integer             HRC 3.2.1.7
  1862.       PMTU aging timeout              integer             MTU 6.6
  1863.       MTU plateau table               (list)              MTU 7
  1864.       IP--layer_parameters,_per_interface:_
  1865.       IP address                      (address)           HRC 3.3.1.6
  1866.       Subnet mask                     (address mask)      HRC 3.3.1.6
  1867.       MTU                             integer             HRC 3.3.3
  1868.       All--subnets--MTU               on/off              HRC 3.3.3
  1869.       Broadcast address flavor        all 0s/all 1s       HRC 3.3.6
  1870.       Perform mask discovery          on/off              HRC 3.2.2.9
  1871.       Be a mask supplier              on/off              HRC 3.2.2.9
  1872.       Perform router discovery        on/off              RD 5.1
  1873.       Router solicitation address     (address)           RD 5.1
  1874.       Default routers, list of:
  1875.               router address          (address)           HRC 3.3.1.6
  1876.               preference level        integer             HRC 3.3.1.6
  1877.       Static routes, list of:
  1878.               destination             (host/subnet/net)   HRC 3.3.1.2
  1879.               destination mask        (address mask)      HRC 3.3.1.2
  1880.               type--of--service       integer             HRC 3.3.1.2
  1881.               first--hop router       (address)           HRC 3.3.1.2
  1882.               ignore redirects        on/off              HRC 3.3.1.2
  1883.               PMTU                    integer             MTU 6.6
  1884.               perform PMTU discovery  on/off              MTU 6.6
  1885.  
  1886.       Link--layer_parameters,_per_interface:_
  1887.       Trailers                        on/off              HRC 2.3.1
  1888.       ARP cache timeout               integer             HRC 2.3.2.1
  1889.       Ethernet encapsulation          (RFC 894/RFC 1042)  HRC 2.3.3
  1890.  
  1891.       TCP_parameters,_per_host:_
  1892.       TTL                             integer             HRC 4.2.2.19
  1893.       Keep--alive interval            integer             HRC 4.2.3.6
  1894.       Keep--alive data size           0/1                 HRC 4.2.3.6
  1895.  
  1896.  
  1897. Key:
  1898.  
  1899.  
  1900.     HRC = Requirements for Internet Hosts -- Communication Layers
  1901.     (RFC 1122)
  1902.  
  1903.  
  1904. R. Droms                                                           [Page 33]
  1905.  
  1906.  
  1907. INTERNET-DRAFT       Dynamic Host Configuration Protocol      December, 1992
  1908.  
  1909.     MTU = Path MTU Discovery (RFC 1191, Proposed Standard)
  1910.  
  1911.     RD = Router Discovery (RFC 1256, Proposed Standard)
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.  
  1922.  
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962. R. Droms                                                           [Page 34]
  1963.